package com.thz.common.dto;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * 统一的转换记录DTO
 * 
 * @author THZ
 * @date 2025
 */
@Data
public class ConversionRecordDTO {
    
    /**
     * 主键ID
     */
    private Long id;
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * IP地址
     */
    private String ipAddress;
    
    /**
     * 转换类型（VIDEO_TO_GIF, FILE_TO_SVG等）
     */
    private String conversionType;
    
    /**
     * 转换类型描述
     */
    private String conversionTypeDescription;
    
    /**
     * 关联的具体转换记录ID
     */
    private Long referenceId;
    
    /**
     * 原始文件名
     */
    private String originalFilename;
    
    /**
     * 输出文件名
     */
    private String outputFilename;
    
    /**
     * 缩略图文件名
     */
    private String thumbnailFilename;
    
    /**
     * 原始文件大小（字节）
     */
    private Long originalFileSize;
    
    /**
     * 原始文件大小（格式化）
     */
    private String originalFileSizeFormatted;
    
    /**
     * 输出文件大小（字节）
     */
    private Long outputFileSize;
    
    /**
     * 输出文件大小（格式化）
     */
    private String outputFileSizeFormatted;
    
    /**
     * 输出文件宽度
     */
    private Integer outputWidth;
    
    /**
     * 输出文件高度
     */
    private Integer outputHeight;
    
    /**
     * 转换状态（0-待转换，1-转换中，2-转换成功，3-转换失败）
     */
    private Integer conversionStatus;
    
    /**
     * 转换状态描述
     */
    private String conversionStatusDescription;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * 输出文件URL
     */
    private String outputUrl;
    
    /**
     * 下载URL
     */
    private String downloadUrl;
    
    /**
     * 缩略图URL（仅用于视频转GIF，显示视频首帧预览）
     */
    private String thumbnailUrl;
    
    /**
     * 压缩率（百分比）
     */
    private Double compressionRatio;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}

